﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Warframe_Character_Builder
{
    public enum WarframeName
    {
        Ash = 0,
        Banshee,
        Ember,
        Excalibur,
        ExcaliburPrime,
        Frost,
        Loki,
        Mag,
        Nyx,
        Rhino,
        Saryn,
        Trinity,
        Volt
    }

    public class Warframe
    {
        private string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        private int level;
        public int Level
        {
            get { return level; }
            set { level = value; }
        }

        private bool isSuperCharged;
        public bool IsSuperCharged
        {
            get { return isSuperCharged; }
            set { isSuperCharged = value; }
        }

        private int modPoints;
        public int ModPoints
        {
            get { return modPoints; }
            set { modPoints = value; }
        }

        private int currentModPoints;
        public int CurrentModPoints
        {
            get { return currentModPoints; }
            set { currentModPoints = value; }
        }

        private List<Polarity> polarities;
        public List<Polarity> Polarities
        {
            get { return polarities; }
            set { polarities = value; }
        }

        private float health;
        public float Health
        {
            get { return health; }
            set { health = value; }
        }

        private float energy;
        public float Energy
        {
            get { return energy; }
            set { energy = value; }
        }

        private float armor;
        public float Armor
        {
            get { return armor; }
            set { armor = value; }
        }

        private float shield;
        public float Shield
        {
            get { return shield; }
            set { shield = value; }
        }

        private float recharge;
        public float Recharge
        {
            get { return recharge; }
            set { recharge = value; }
        }

        private float speed;
        public float Speed
        {
            get { return speed; }
            set { Speed = value; }
        }

        private List<Mod> mods;
        public List<Mod> Mods
        {
            get { return mods; }
            set { mods = value; }
        }

        public Warframe()
        {
        }

        public Warframe(string name1, int level1, bool isSuperCharged1, int modPoints1, List<Polarity> polarities1, float health1, float energy1, float armor1, float shield1, float recharge1, float speed1)
        {
            name = name1;
            level = level1;
            isSuperCharged = isSuperCharged1;
            if (isSuperCharged)
            {
                modPoints += level;
                currentModPoints = modPoints;
            }
            else
                modPoints = currentModPoints = level;
            polarities = polarities1;
            health = health1;
            energy = energy1;
            armor = armor1;
            shield = shield1;
            recharge = recharge1;
            speed = speed1;

            mods = new List<Mod>();
            Polarity tempPol = new Polarity(0);
            Mod tempMod = new Mod("default", "None", 0, 0.0f, 0.0f, 0, 0, 0, 0, tempPol);
            for (int i = 0; i < 8; ++i)
                mods.Add(tempMod);
        }
    }
}
